{
}
-static gboolean
-gnome_shell_plugin_has_swap_event (GnomeShellPlugin *shell_plugin)
-{
- MetaPlugin *plugin = META_PLUGIN (shell_plugin);
- CoglDisplay *cogl_display =
- cogl_context_get_display (shell_plugin->cogl_context);
- CoglRenderer *renderer = cogl_display_get_renderer (cogl_display);
- const char * (* query_extensions_string) (Display *dpy, int screen);
- Bool (* query_extension) (Display *dpy, int *error, int *event);
- MetaScreen *screen;
- MetaDisplay *display;
- Display *xdisplay;
- const char *glx_extensions;
-
- /* We will only get swap events if Cogl is using GLX */
- if (cogl_renderer_get_winsys_id (renderer) != COGL_WINSYS_ID_GLX)
- return FALSE;
-
- screen = meta_plugin_get_screen (plugin);
- display = meta_screen_get_display (screen);
-
- xdisplay = meta_display_get_xdisplay (display);
-
- query_extensions_string =
- (void *) cogl_get_proc_address ("glXQueryExtensionsString");
- query_extension =
- (void *) cogl_get_proc_address ("glXQueryExtension");
-
- query_extension (xdisplay,
- &shell_plugin->glx_error_base,
- &shell_plugin->glx_event_base);
-
- glx_extensions =
- query_extensions_string (xdisplay,
- meta_screen_get_screen_number (screen));
-
- return strstr (glx_extensions, "GLX_INTEL_swap_event") != NULL;
-}
-
static void
gnome_shell_plugin_start (MetaPlugin *plugin)
{
backend = clutter_get_default_backend ();
shell_plugin->cogl_context = clutter_backend_get_cogl_context (backend);
- shell_plugin->have_swap_event =
- gnome_shell_plugin_has_swap_event (shell_plugin);
+ shell_plugin->have_swap_event = clutter_feature_available (CLUTTER_FEATURE_SWAP_EVENTS);
shell_perf_log_define_event (shell_perf_log_get_default (),
"glx.swapComplete",